/*
 * Shell.h
 *
 *  Created on: May 18, 2011
 *      Author: Stijn, Bart, Dave
 */

#ifndef SHELL_H_
#define SHELL_H_

#include <iostream>
#include <vector>

class Rule;

class Shell {
	private:
		bool runProgram;
		std::vector<Rule*>* rules;
		std::vector<int>* backgroundPids;

		void parseCommands();

	public:
		Shell();
		Shell(char*);
		virtual ~Shell();
		void execute();

		static std::vector<std::string>* readPathVariables();

		void executePipedCommands(const char* command[], char* const*);
};

#endif /* SHELL_H_ */
